home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / FixMFMDevice.lha / Source / FixMfmDevice.s < prev    next >
Encoding:
Text File  |  1996-09-21  |  2.4 KB  |  122 lines

  1.  
  2.         Section    FixMfmDevice,Code
  3.  
  4.             Opt o+,d+,c-,ow2-
  5.  
  6.         Incdir    Inx:
  7.         Include    LVO.Gs
  8.         Include    Macros.I
  9.         Include    Reqtools.I
  10.         Include    Libraries/XfdMaster.I
  11.         Include    Libraries/XfdMaster_Lib.I
  12.         ;Include    Libraries/Reqtools_Lib.I
  13.         ;Include    Libraries/PowerPacker_Lib.I
  14.  
  15.  
  16. NastyPrint
  17.  
  18. ;-------------------------------------------------------------
  19. ;Init regs
  20.         Lea    Vars(PC),a5
  21.         Move.l    4.w,a6
  22.         Move.l    a6,_Execbase(a5)
  23.  
  24. ;-------------------------------------------------------------
  25. ;Open libs
  26.         Lea    RTName(PC),a1
  27.         Moveq.l    #0,d0
  28.         Call    OpenLibrary
  29.         Move.l    d0,_RTBase(a5)
  30.         Beq.b    NoReqTools
  31.  
  32.         Move.l    d0,a0
  33.         Move.l    RT_DOSBase(a0),_DosBase(a5)
  34.  
  35.         Lea    XFDName(PC),a1
  36.         Moveq.l    #0,d0
  37.         Call    OpenLibrary
  38.         Move.l    d0,_XFDBase(a5)
  39.  
  40. ;------------------------------------------------------------
  41.  
  42.         Bsr.b    ReadFile
  43.         Tst.l    d0
  44.         Bne.b    .FileError
  45.  
  46.         Tst.l    _XFDBase(a5)
  47.         Beq.b    .DontTryDecrunch
  48.         Bsr    DecrunchFile
  49. .DontTryDecrunch
  50.  
  51. ;------------------------------------------------------------
  52. ;print file
  53.         Bsr    FixFile
  54.         Bsr    WriteFile
  55.         Bsr    FreeFileMemory
  56. .FileError
  57.  
  58.  
  59. ;------------------------------------------------------------
  60. ;close libs
  61.         Move.l    _Execbase(a5),a6
  62.         Tst.l    _XFDBase
  63.         Beq.b    .DidntOpen
  64.         Move.l    _XFDBase(a5),a1
  65.         Call    CloseLibrary
  66. .DidntOpen
  67.         Move.l    _RTBase(a5),a1
  68.         Call    CloseLibrary
  69.  
  70. NoReqTools    Move.l    _DosBase(a5),a1
  71.         Call    CloseLibrary
  72.         Moveq.l    #0,d0
  73. NoDos        Rts
  74.  
  75. ;-----------------------------------------------------------------------
  76.  
  77.         Include    Code:FixMFMDevice/ReadFile.s
  78.         Include    Code:FixMFMDevice/DecrunchFile.s
  79.         Include    Code:FixMFMDevice/FixFile.s
  80.         Include    Code:FixMFMDevice/WriteFile.s
  81.         Include    Code:FixMFMDevice/FreeFileMem.s
  82.         Include    Code:FixMFMDevice/EasyRequestor.s
  83.  
  84. ;-----------------------------------------------------------------------
  85. DosName        dc.b    "dos.library",0
  86. RTName        dc.b    "reqtools.library",0
  87. XFDName        dc.b    "xfdmaster.library",0
  88.  
  89. DecrunchErrorTxt
  90.         Dc.b    "Decrunch ERROR!",10
  91.         Dc.b    "%s",0
  92. OKText        Dc.b    "_Okay",0
  93.  
  94. PathNameBuffer    Dc.b    "DEVS:mfm.device",0
  95. OldMfmName    Dc.b    "DEVS:mfm.device.old",0
  96.         Even
  97.  
  98. EZReqTaglist    Dc.l    RT_ReqPos,ReqPos_Pointer
  99.         Dc.l    RT_LockWindow,1
  100.         Dc.l    RT_UnderScore,"_"
  101.         Dc.l    RTEZ_Flags,EZReqF_CenterText
  102.         Dc.l    Tag_End
  103.  
  104.         RsReset
  105. _ExecBase    Rs.l    1
  106. _DosBase    Rs.l    1
  107. _RTBase        Rs.l    1
  108. _XFDBase    Rs.l    1
  109.  
  110. PrintFVarStack    Rs.l    1
  111. FilenamePtr    Rs.l    1
  112.  
  113. LoadAddr    Rs.l    1
  114. LoadFilereqmem    Rs.l    1
  115. EZReqMem    Rs.l    1
  116. LoadFileSize    Rs.l    1
  117. LoadBufferSize    Rs.l    1
  118. MyXFDBufferInfo    Rs.l    1
  119.  
  120. VarsSize    Rs.b    0
  121. Vars        Dcb.l    VarsSize,0
  122.